package com.ocr.demo;

import cn.hutool.http.HttpUtil;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.Base64;



public class Main {
    //本机部署的api地址
    private static final String apiUrl = "http://10.10.7.173:8866/predict/ch_pp-ocrv3";

    public static void main(String[] args) {
        try {
            // 读取图像文件
            BufferedImage image = ImageIO.read(new File("D:/style_transfer/20230815170025.jpg"));
            // 创建新的BufferedImage对象，并指定宽度、高度和颜色类型（这里选择RGB）
            BufferedImage jpegImage = new BufferedImage(image.getWidth(), image.getHeight(),
                    BufferedImage.TYPE_INT_RGB);
            // 将PNG图片绘制到新的BufferedImage对象中
            jpegImage.createGraphics().drawImage(image, 0, 0, null);
            // 创建字节数组输出流
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            // 将图像数据编码为JPEG格式并写入输出流
            ImageIO.write(jpegImage, "jpeg", outputStream);
            // 获取编码后的图像数据
            byte[] encodedData = outputStream.toByteArray();
            // 进行Base64编码
            byte[] encodedDatabm = Base64.getEncoder().encode(encodedData);
            String encodedString = new String(encodedDatabm);
            // 关闭输出流
            outputStream.close();
            // 打印编码后的图像数据
            //请求json体
            String param = "{\"images\":[\"" + encodedString + " \"]}";
            String result = HttpUtil.post(apiUrl, param);
            System.out.println(result);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
